【PHP/演習問題】parent[2]
問題
次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。
- 下記表の3つのクラスを作成する
- 実行結果になるように各クラスのインスタンスを使う
クラス | 英記 | 継承元 | フィールド | メソッド |
---|---|---|---|---|
チケットクラス | Ticket |
なし | ・$price (料金) |
・info()
→ $ の値を出力 |
ライブチケット | LiveTicket |
Ticket |
・$place (場所) |
・info()
→ 場所と料金を出力 ※ スーパークラスのinfoメソッドを利用する |
ライブ配信チケット | LiveStreamingTicket |
Ticket |
・$url (URL) |
・info()
→ URLと料金を出力 ※ スーパークラスのinfoメソッドを利用する |
===== チケット =====
料金 : 5000円
===== ライブチケット =====
料金 : 8000円
場所 : ライブハウス
===== ライブ配信 =====
料金 : 3000円
URL : https://it-hack.net/live-streaming
解答例
<?php
class Ticket {
public $price;
public function __construct( $price ) {
$this->price = $price;
}
public function info() {
echo '料金 : '.$this->price."円\n";
}
}
class LiveTicket extends Ticket {
public $place;
public function __construct( $price, $place ) {
parent::__construct($price);
$this->place = $place;
}
public function info() {
echo '料金 : '.$this->price."円\n";
echo '場所 : '.$this->place."\n";
}
}
class LiveStreamingTicket extends Ticket {
public $url;
public function __construct( $price, $url ) {
parent::__construct($price);
$this->url = $url;
}
public function info() {
echo '料金 : '.$this->price."円\n";
echo 'URL : '.$this->url."\n";
}
}
echo "===== チケット =====\n";
$ticket = new Ticket(5000);
$ticket->info();
echo "===== ライブチケット =====\n";
$live_ticket = new LiveTicket(8000, 'ライブハウス');
$live_ticket->info();
echo "===== ライブ配信 =====\n";
$live_streaming_ticket = new LiveStreamingTicket(3000, 'https://it-hack.net/live-streaming');
$live_streaming_ticket->info();
?>